The present invention relates generally to process control networks and, more specifically, to a process controller that uses shadow function blocks to represent information associated with external function blocks distributed throughout a process control network.
Process control networks, such as those used in chemical, petroleum or other processes, generally include a centralized process controller communicatively coupled to one or more field devices which may be, for example, valve positioners, switches, sensors (such as temperature, pressure and flow rate sensors), etc. These field devices may perform control functions within the process (such as opening or closing a valve), may take measurements within the process for use in controlling the operation of the process or may perform any other desired function within the process. Process controllers have historically been connected to field devices via one or more analog signal lines or buses which may carry, for example, 4-20 mA (milliamp) signals to and from the field devices. Generally speaking, the process controller receives signals indicative of measurements made by one or more field devices and/or other information pertaining to one or more field devices, uses this information to implement a typically complex control routine and then generates control signals which are sent via the analog signal buses to one or more of the field devices to thereby control the operation of the process.
Recently, there has been a move within the process control industry to implement field-based digital communications within the process control environment. For example, the process control industry has developed a number of standard, open, digital or combined digital and analog communication protocols such as the HART(copyright), PROFIBUS(copyright), WORLDFIP(copyright), Device-Net(copyright) and CAN protocols. These digital communication protocols generally enable more field devices to be connected to a particular bus, support more and faster communication between the field devices and the controller and/or allow field devices to send more and different types of information, such as information pertaining to the status and configuration of the field device itself, to the process controller. Furthermore, these standard digital protocols enable field devices made by different manufacturers to be used together within the same process control network
Also, there is now a move within the process control industry to decentralize process control and, thereby, simplify process controllers. Decentralized control is obtained by having field mounted process control devices, such as valve positioners, transmitters, etc. perform one or more process control functions using what are typically referred to as function blocks and by then communicating data across a bus structure for use by other process control devices (or function blocks) in performing other control functions. To implement these control functions, each process control device typically includes a microprocessor having the capability to implement one or more function blocks as well as the ability to communicate with other process control devices using a standard and open communication protocol. In this manner, field devices can be interconnected within a process control network to communicate with one another and to perform one or more process control functions forming a control loop without the intervention of a centralized process controller. The all-digital, two-wire bus protocol now being promulgated by the Fieldbus Foundation, known as the FOUNDATION(trademark) Fieldbus (hereinafter xe2x80x9cFieldbusxe2x80x9d) protocol is one open communication protocol that allows devices made by different manufacturers to interoperate and communicate with one another via a standard bus to effect decentralized control within a process.
Because digital communication protocols and decentralized control schemes (such as that used in the Fieldbus control environment) are so new, processes which implement these protocols typically do so only to a limited extent. As a result, newer process controllers, such as the DeltaV(trademark) process controller manufactured by Fisher-Rosemont Systems support both analog and digital communication protocols and hardware and can be programmed to implement control in a process that includes field devices which communicate using standard analog protocols, such as the 4-20 mA protocol, and one or more of the newer digital protocols, such as the Fieldbus protocol.
However, problems have arisen when trying to integrate control of analog and digital field devices, and particularly Fieldbus field devices, in a process control network using a centralized controller. Because the control functions for analog field devices and some digital field devices are implemented within the centralized process controller, all the necessary information about these field devices is received by and stored within the centralized process controller. This in turn enables the centralized process controller to integrate control of the different analog and digital field devices, to display the current configuration and state of the portions of the process control network in which these devices are located, to make changes to the process control network configuration with respect to these devices, etc. However, when a decentralized control scheme, such as the Fieldbus control scheme, is used in a part of the process, the centralized process controller no longer needs or has direct access to all of the current information being used by or associated with the process control devices subject to the decentralized control. In fact, some decentralized process control protocols, such as the Fieldbus protocol, are specifically designed so that it is not necessary to send information to a centralized process controller on a regular basis. This fact makes it difficult for the centralized process controller to integrate the control of the analog or other digital field devices with the field devices subject to decentralized control. Also, it makes it difficult for the centralized process controller to model or display the current state of the devices subject to decentralized control or within a decentralized portion of the process control network.
In fact, for the centralized process controller to receive information from the decentralized control portion of the process control network, the field devices (or function blocks) within that portion of the process must be specifically configured to send information directly to the centralized process controller (which means that the centralized process controller must receive and track all of this information, most of which is not necessary for operation of the centralized process controller). Alternatively, the centralized process controller must actively request to receive the information it needs. Because such a request is not given a high priority in, for example, the Fieldbus protocol, by the time the centralized process controller receives the requested information, this information may be out of date. Furthermore, it is difficult, if not impossible for the centralized process controller to request and receive data that is active or current at a specified time. Instead, the centralized process controller only receives the data active at the time the request reaches the field device. Still further, communication between the centralized process controller and field devices within the decentralized portion of the process is highly specialized and requires considerable knowledge of the decentralized control protocol, which makes it difficult for the designer of the centralized process control routine to implement this communication on an as needed basis.
The present invention is directed to the use of shadow function blocks to integrate, in a centralized process controller, the control of function blocks residing in the centralized controller with those residing in an external device, such as a field device. The present invention may also be used to enable a controller to control and communicate with devices or function blocks that are located in a communication network or that use a communication protocol that is different than that used by the controller. In particular, a shadow function block is set up in the centralized controller to mirror the data associated with an external function block located in an external device, such as in a field device conforming to a decentralized control and communication protocol. The control routine of the centralized controller communicates with the external function block via the shadow function block as if the external function block was being implemented by the centralized controller. The shadow function block automatically obtains current information associated with the external function block and sends commands to the external function block using the protocol associated with the external (e.g., decentralized) control protocol. In the case of a Fieldbus protocol, this communication is accomplished using both synchronous and asynchronous communications. However, the shadow function block communicates with other function blocks within the centralized controller as if the external function block is being fully implemented by the centralized controller.
Using the shadow function block of the present invention, the centralized process control routine can receive up-to-date information about the actual function block on a real-time or near real-time basis because this information is mirrored in the shadow function block which is always accessible to the centralized process control routine. Likewise, the centralized process control routine can send commands to the actual function block by sending a command to the shadow function block without regard to the type or location of the device in which the actual function block is located. The shadow function block then immediately relays this command to the actual function block using the appropriate communication commands associated with the decentralized process control protocol. In this manner, the centralized process control routine does not need to perform any significant database control with respect to all of the field devices within the decentralized control portion of the process because the information it needs for field devices within the decentralized portion of the process control network is located in the shadow function block(s). Likewise, the centralized process control routine does not need to be specifically programmed to deal with the complex and demanding tasks of communicating in the decentralized process control protocol because this communication is performed automatically by the shadow function block.
According to one aspect of the present invention, an interface or shadow function block is adapted to be used in a process controller communicatively coupled to an external device via a communication network to enable the process controller to implement a control routine using both an internal function block residing in the process controller and an external function block residing within the external device. The interface or shadow function block according to this aspect of the invention includes a communication port having an input that communicates with the external function block via the communication network to thereby receive data pertaining to the external function block and a memory that stores the received data pertaining to the external function block according to a configuration protocol of the internal function block. If desired, the interface function block may also include an output that provides the stored external function block data to the internal function block using the configuration protocol of the internal function block. Likewise, the communication port of the interface function block may include an output that sends data (such as linked data or commands) to the external function block using a communication protocol associated with the external function block.
Preferably, the communication port of the interface function block receives the data pertaining to the external function block independently of the operation of the internal function blocks. Likewise, in one embodiment, the external function block communicates via the communication network using a first communication protocol that is different than a second communication protocol associated with the internal function block and, in this case, the communication port communicates with the external function block using the first communication protocol and the output of the interface function block communicates with the internal function block according to the second communication protocol.
If desired, the first communication protocol associated with the external function block may be the Fieldbus communication protocol. In this case, the communication port may use an interface device (such as an interface card) configured to communicate with the external device using the Fieldbus communication protocol to thereby communicate with the external function block. The communication port may, for example, communicate with the external function block using synchronous communications, such as the publisher/subscriber relationships of the Fieldbus communication protocol, and/or using asynchronous communications, such as the view objects of the Fieldbus communication protocol. More generally, the external device may communicate using a device communication protocol that supports the communication of logically linked packets of data using standardized communication calls, such as the view objects and view alerts of the Fieldbus communication protocol, and the communication port may communicate with the external function block using the standardized communication calls. Likewise, the communication port may receive alarm indications from the external function block and store these alarm indications in memory for use by the controller.
According to another aspect of the present invention, a controller adapted to be communicatively coupled to a plurality of field devices includes a processor, a memory and a control routine stored in the memory and implemented by the processor to control the plurality of field devices. The control routine includes a multiplicity of interconnected internal function blocks configured using a controller protocol to be implemented by the controller and an interface function block that communicates with one of the interconnected internal function blocks using the controller protocol and that communicates with an external function block residing in an external field device using a field device communication protocol. The interface function block stores data pertaining to the external function block received from the external function block for use by the control routine.
According to a further aspect of the present invention, a method of implementing a control routine within a process controller stores, within the controller, a plurality of interconnected internal function blocks configured according to a controller protocol for implementation as part of the control routine. The method also creates, within the controller, an interface function block that is configured according to the controller protocol but which communicates with an external function block located in an external field device using a device communication protocol associated with the external device. The method then creates a control routine that uses the plurality of interconnected internal function blocks and the interface function block to control the process and, during implementation of the control routine, stores data associated with and received from the external function block in the interface function block for use by the control routine as if the external function block were being implemented by the controller as one of the internal function blocks.
The method may allow a user to configure the control routine by specifying each of a number of function blocks to be used in the control routine, identifying the interconnections between the specified function blocks to be used in the control routine and specifying the location of a particular specified function block as being an internal function block implemented in the controller or an external function block implemented by a field device. In the case in which a function block is to be implemented in an external device, the method includes the step of selecting an external device from a list or set of devices connected within the system.